package com.imc.platform.base.appointment.dao;
import com.imc.api.order.pojo.LessonSchedule;
import com.imc.platform.base.appointment.pojo.Appointment;
import com.imc.platform.base.leave.pojo.Leave;
import com.imc.platform.base.org.pojo.Org;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/*
* 类描述：
* 开发者：YT
* 创建日期：2018/10/17 23:12
*/
@Mapper
public interface IAppointmentMapper {
    /**
     *QY 2018/10/08 15:41
     *方法描述：根据条件查询预约信息
     **/
    List<Appointment> queryAppointmentByMap(@Param("parms") Map <String, String> appointmentMap);
    
    /*
    * YT  2018/10/17 23:14
    * 方法描述：新增预约信息
    */
    int addAppointment(Appointment appointment);

    /*
    * YT  2018/10/27 21:58
    * 方法描述：获取预约信息列表
    */
    List<Map<String,Object>> getAppointmentList(Appointment appointment);

    /*
    * YT  2018/10/27 21:58
    * 方法描述：查询预约信息是否存在
    */
    List<Appointment> queryAppointmentExists(Appointment appointment);

    /*
    * YT  2018/10/17 23:16
    * 方法描述：查看预约信息
    */
    Appointment queryAppointmentInfoById(@Param("id") String id);

    /**
     *QY 2018/9/10 15:44
     *方法描述：修改处理状态
     **/
    int updateState(@Param("state") String state,@Param("id") String id);

    /**
     *QY 2018/9/10 15:44
     *方法描述：修改处理状态
     **/
    int updateStateDeal(@Param("state") String state,@Param("id") String id);

    /*
    * YT  2018/10/25 13:08
    * 方法描述：查询组织机构ID 信息
    */
    Org queryOrgIdByLessonId(@Param("lessonId") String lessonId);

    /*
    * YT  2018/10/27 21:58
    * 方法描述：根据课程ID查询预约课时信息
    */
    List<LessonSchedule> queryLessonSchedulerByLessonId(@Param("lessonId") String lessonId,@Param("userId") String userId);

    /**
     *QY 2018/9/10 15:44
     *方法描述：根据用户ID查询用户与组织结构的关联
     **/
    List<String> queryUserIdByOrgId(String orgId);
}
